#ifndef DIBUJO_H
#define DIBUJO_H

#include <QPainter>
#include "visitante.h"
#include "Punto.h"

class Dibujo
{
public:
    virtual void pintar(QPainter *painter) = 0;
    virtual void actualizar() = 0;
};

class DibujoCirculo : public Dibujo
{
public:
    DibujoCirculo();
    virtual ~DibujoCirculo();

    void pintar(QPainter *painter);
    void actualizar();

protected:
private:
    real x;
    real y;
    real radio;
    int contador;
    bool vuelta;
    QBrush brocha;
};

class DibujoArcoiris : public Dibujo
{
public:
    DibujoArcoiris();
    virtual ~DibujoArcoiris() { };

    void pintar(QPainter *painter);
    void actualizar();

protected:
private:
    //void crearImagen();
    void pintarArcoiris(QPainter *painter);

    list<pair<real,int> > bandas;
    int contador;
    QImage imagen;
    bool regenerarImagen;
};

#endif // DIBUJO_H
